package DataLayer.ImageDataContainer.ImageInfo;

import java.awt.image.BufferedImage;

/**
 * Stores and manages the information about the image.
 * @author Kovács Áron
 */
public class ImageInfo implements IImageInfo {

    private BufferedImage originalImage;
    private String originalImagePath;
    private BufferedImage preprocessedImage;
    private String preprocessedImagePath;
    private BufferedImage bwImage;

    /**
     * Returns the original image.
     * @return - The original image.
     */
    public BufferedImage getOriginalImage() {
        return originalImage;
    }

    /**
     * Returns the original image path.
     * @return - The original image path.
     */
    public String getOriginalImagePath() {
        return originalImagePath;
    }

    /**
     * Sets the original image with the given parameter.
     * @param originalImageParam - The given image.
     */
    public void setOriginalImage(BufferedImage originalImageParam) {
        originalImage = originalImageParam;
    }

    /**
     * Sets the original image path with the given parameter.
     * @param path - The given path.
     */
    public void setOriginalImagePath(String path) {
        originalImagePath = path;
    }

    /**
     * Returns the preprocessed image.
     * @return - The preprocessed image.
     */
    public BufferedImage getPreprocessedImage() {
        return preprocessedImage;
    }

    /**
     * Sets the preprocessed image path.
     * @param path - The preprocessed image path.
     */
    public void setPreprocessedImagePath(String path) {
        preprocessedImagePath = path;
    }

    /**
     * Sets the preprocessed image with the given parameter image.
     * @param preprocessedImageParam - The given imgae.
     */
    public void setPreprocessedImage(BufferedImage preprocessedImageParam) {
        preprocessedImage = preprocessedImageParam;
    }

    /**
     * Returns the preprocessed image path.
     * @return - The preprocessed image path.
     */
    public String getPreprocessedImagePath() {
        return preprocessedImagePath;
    }

    /**
     * Returns the black and white image.
     * @return - The black and white image.
     */
    public BufferedImage getBWImage() {
        return bwImage;
    }

    /**
     * Sets the black and white image.
     * @param bwImg - black and white image.
     */
    public void setBWImage(BufferedImage bwImg) {
        bwImage = bwImg;
    }
}
